EE263 Homework 9
课程主页:https://see.stanford.edu/Course/EE263
这次回顾EE263作业9。
14.16
(a)注意到
所以
因此
(b)
所以
(c)假设$A$的满奇异值分解为
由(b)可得
所以
14.26
(a)将卷积写成矩阵形式,记
其中
所以
另一方面
所以
我们的目标是最大化
将其化为条件约束问题
构造拉格朗日乘子
求梯度可得
第一个式子说明
带入原式得到
如果$C^TC$可逆,那么第一个式子可以化为
所以$\lambda$是$E$的特征值,因此
(b)
c = [ 0.0455; -0.2273; -0.0455; 0.2727; 0.4545; 0.4545; 0.2727; -0.0455; -0.2273; 0.0455;];
k = 1;
n = length(c);
A = zeros(n, n);
B = zeros(n - 1, n);
for i = 1: n
for j = 1:i
A(i, j) = c(i + 1 - j)
end
end
for i = 1: (n - 1)
for j = 1 : (n - i)
B(i, j + i) = c(n + 1 - j)
end
end
C = [A; B];
D = [zeros(2 * k + 1, n - k - 1), eye(2 * k + 1), zeros(2 * k + 1, n - k - 1)];
%E = inv(C' * C) * (C' * D' * D * C);
E = (C' * C) \ (C' * D' * D * C);
Eig = eig(E);
res = max(Eig)
0.9375
15.2
(a)回顾定义
显然
所以
等价于
等价于$A$的SVD为
显然$ UV^T$为正交矩阵,所以结论成立。
15.3
假设$A$的SVD为
其中
那么$A^{-1}$的SVD为
取
不难看出
所以
注意到
所以等号可以成立。
15.6
记
要使得$\rho $最小化,等价于最小化
假设$Y$的奇异值分解为
那么
要使得上式最大,只要取$q =u_n$即可,此时
15.8
(a)
对于固定的$t$,对$e^{tA}$做奇异值分解
注意到约束条件为$|x(0)|=1$,所以要使得$x(t)$模最大上式最大,必然有
要使得$x(t)$模最大上式最小,必然有
(b)
expA = expm(3 * A);
[U, S, V] = svd(expA);
% (a)
x0_1 = V(:, 1);
% (b)
x0_2 = V(:, 5);
15.10
(a)注意到,如果
那么可以利用距离判别。
如果
则输出结果为$s_1$,否则输出结果为$s_2$。
注意到上式等价于
我们希望在下式最小的情形下达到最开始的条件
假设$A$的SVD为
那么利用SVD的性质可得,只要选择
即可,带入原式可得
所以
此时
(b)
A = [2 4 5 4 5; 0 5 7 7 1; 7 8 0 6 7; 7 0 4 9 4; 9 1 1 8 7];
Vmax = 3;
[U, S, V] = svd(A);
k = Vmax / S(1, 1);
s1 = k * V(:, 1)
s2 = - k * V(:, 1)
s1 =
-0.0606
-0.0373
-0.0312
-0.0746
-0.0549
s2 =
0.0606
0.0373
0.0312
0.0746
0.0549
15.11
(a)回顾结论,我们有
其中
记
要使得$x(T)=0$,只要
即
可用如下方式判定
找到$T$之后,现在要求下式的最小范数解
利用SVD的性质,我们可得
A = [1, 0, 0, 0; 1, 1, 0, 0; 0, 1, 1, 0; 1, 0, 0, 0];
B = [0, 1; 0, 1; 1, 0; 0, 0];
x0 = [1; 0; -1; 1];
T = 1;
C = B;
tmp = B;
x = A * x0;
while true
if rank(C) == rank([C, x])
break
end
x = A * x;
tmp = A * tmp;
C = [C, tmp];
T = T + 1;
end
% (a)
u = - pinv(C) * x;
J1 = norm(u) ^ 2
(b)利用第7,8讲的内容求解该问题。
记
构造损失函数
对每个$\rho$,我们最小化该损失函数。注意我们有
所以
最优解为
我们找到$\rho$,使得
然后计算相应的$U$即可。
% (b)
C = [];
tmp = B;
x10 = x0;
for i = 1:10
C = [C, tmp];
tmp = A * tmp;
x10 = A * x10;
end
P = C;
v = - x10;
[m, n] = size(P);
N = 100;
Lambda = logspace(1, -1, N);
res = zeros(1, N);
for i = 1: N
lambda = Lambda(i);
u = inv(eye(n) + lambda * P' * P) * lambda * P' * v;
res(i) = norm(P * u - v) - 0.1;
if i > 1 && res(i) * res(i - 1) < 0
u_res = u;
%break;
end
end
J9 = norm(u_res) ^ 2;
plot(res);
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere